01
成本分析概述
什么是Execution Cost、为什么需要分析、核心指标(Gas、Time、Memory)
GasTimeMemory
02
环境搭建
Solidity编译器、Hardhat框架、Foundry工具链、Gas Reporter插件配置
HardhatFoundryGas Reporter
03
基础Gas模型
EVM Opcode Gas表、静态Gas与动态Gas、内存扩展成本
EVMOpcode内存扩展
04
存储布局分析
Slot机制、存储读写成本对比、变量打包优化
Slot存储读写变量打包
05
函数选择器与ABI编码
函数签名哈希、ABI编码长度对成本的影响
ABI函数选择器编码
06
循环与条件语句
循环展开优化、条件分支预测、短路求值
循环分支短路
07
字符串与字节操作
动态数组成本、字符串拼接陷阱、Bytes库优化
字符串Bytes动态数组
08
映射与数组
Mapping vs Array成本对比、嵌套映射、动态数组扩容
MappingArray扩容
09
结构体与枚举
结构体打包、枚举类型成本、自定义类型
结构体枚举打包
10
事件与日志
事件成本构成、Topic数量影响、日志数据存储
事件Topic日志
11
错误处理
Require vs Revert vs Assert、自定义错误、错误数据编码
RequireRevertAssert
12
继承与库
继承布局成本、库函数调用、内部函数 vs 外部函数
继承库内部函数
13
修饰器与函数重载
Modifier成本、重载解析、函数选择器冲突
Modifier重载选择器
14
数学运算优化
SafeMath vs unchecked、位运算技巧、模运算成本
SafeMathunchecked位运算
15
外部调用
Call vs DelegateCall vs StaticCall、调用深度限制、返回值处理
CallDelegateCallStaticCall
16
创建合约
Create vs Create2、合约部署成本、初始化代码优化
CreateCreate2部署
17
代理模式
透明代理 vs UUPS、存储冲突、Fallback函数成本
透明代理UUPSFallback
18
Gas代付与元交易
EIP-2771、EIP-712签名验证、Relayer成本模型
EIP-2771EIP-712Relayer
19
Layer2成本分析
Rollup数据可用性、Calldata压缩、状态通道成本
RollupCalldata状态通道
20
跨链调用
跨链消息传递、中继成本、最终性延迟
跨链中继最终性
21
工具实战
Hardhat Gas Reporter、Foundry Gas Snapshots、Tenderly分析
HardhatFoundryTenderly
22
基准测试
编写Gas Benchmark、对比测试、回归检测
Benchmark对比回归
23
优化策略
存储缓存、事件替代存储、批处理模式
缓存事件批处理
24
安全与成本权衡
重入保护成本、访问控制优化、时间锁成本
重入访问控制时间锁
25
真实案例1:NFT Minting
ERC-721 vs ERC-1155 成本优化
NFTERC-721ERC-1155
26
真实案例2:DeFi Swap
Uniswap V2 vs V3 成本优化
DeFiUniswapV2/V3
27
真实案例3:DAO投票
链上 vs 链下快照 成本优化
DAO投票快照
28
报告生成
自动化成本报告、CI/CD集成、阈值告警
CI/CD报告告警
29
前沿趋势
EIP-4844 Proto-Danksharding、账户抽象AA、ZK-Rollup成本
EIP-4844AAZK-Rollup
30
总结与最佳实践
成本分析Checklist、团队协作流程、持续优化文化
Checklist协作优化文化